package com.grape.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;


/**
 *
 * 用户聊天消息记录表 实体类
 *
 * @author      putao
 * @email       2628279194@qq.com
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_message")
public class Message extends BaseDomain implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 聊天时间戳
     */
    @ApiModelProperty("聊天时间戳")
    private Long chatTime;
    /**
     * 聊天内容
     */
    @ApiModelProperty("聊天内容")
    private String content;
    /**
     * 图片地址
     */
    @ApiModelProperty("图片地址")
    private String image;
    /**
     * 是否撤回（0：否，1：是）
     */
    @NotBlank(message = "是否撤回（0：否，1：是）不能为空")
    @ApiModelProperty("是否撤回（0：否，1：是）")
    private String isRecalled;
    /**
     * 是否显示头像（与上一个消息时间大于3分钟则显示，反之不显示）
     */
    @ApiModelProperty("是否显示头像（与上一个消息时间大于3分钟则显示，反之不显示）")
    private String isShowTime;
    /**
     * 类型非普通时的源数据（当为1，此存储帖子数据，只包含主表和图片数据）
     */
    @ApiModelProperty("类型非普通时的源数据（当为1，此存储帖子数据，只包含主表和图片数据）")
    private String otherSource;
    /**
     * 聊天用户头像
     */
    @NotBlank(message = "聊天用户头像不能为空")
    @ApiModelProperty("聊天用户头像")
    private String receiveUserAvatar;
    /**
     * 聊天用户id
     */
    @NotBlank(message = "聊天用户id不能为空")
    @ApiModelProperty("聊天用户id")
    private String receiveUserId;
    /**
     * 聊天用户名
     */
    @NotBlank(message = "聊天用户名不能为空")
    @ApiModelProperty("聊天用户名")
    private String receiveUsername;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
    /**
     * 类型（0：普通消息）
     */
    @ApiModelProperty("类型（0：普通消息）")
    private String type;
    /**
     * 用户头像
     */
    @ApiModelProperty("用户头像")
    private String userAvatar;
    /**
     * 用户id（当类型为系统通知时，此id、用户名、头像为空。只有被通知人信息）
     */
    @ApiModelProperty("用户id（当类型为系统通知时，此id、用户名、头像为空。只有被通知人信息）")
    private String userId;
    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    private String username;
}
